//给定两个由小写字母组成的字符串 s1 和 s2，请编写一个程序，确定其中一个字符串的字符重新排列后，能否变成另一个字符串。
//
//        示例 1：
//
//        输入: s1 = "abc", s2 = "bca"
//        输出: true
//        示例 2：
//
//        输入: s1 = "abc", s2 = "bad"
//        输出: false
public class Solution {
    public boolean CheckPermutation(String s1, String s2) {
        if(s1.length() != s2.length()){
            return false;
        }
        int len = s1.length();
        int[] hash = new int[26];
        for(int i = 0; i < len; i++){
            char ch1 = s1.charAt(i);
            hash[ch1 - 'a']++;
        }
        for(int i = 0; i < len; i++){
            char ch2 = s2.charAt(i);
            hash[ch2 - 'a']--;
            if(hash[ch2 - 'a'] < 0){
                return false;
            }
        }
        return true;
    }
}